package com.ssy.lingxi.contract.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.contract.api.model.vo.request.PurchaseViePriceAddVO;
import com.ssy.lingxi.contract.entity.PurchaseViePriceDO;
import com.ssy.lingxi.contract.model.vo.common.request.PurchaseViePricePageVO;
import com.ssy.lingxi.contract.model.vo.common.response.PurchaseViePriceQueryVO;

import java.util.List;

/**
 * 采购竞价合同接口定义
 * @author 伍将
 * @date 2021/3/15
 * @version 2.0.0
 */
public interface IPurchaseViePriceService {

    /**
     * 分页查询待创建采购竞价合同
     * @author 伍将
     * @date 2021/3/15
     * @param user: 当前登录用户
     * @param pageVO: 分页请求参数
     * @return 操作结果
     **/
    Wrapper<PageData<PurchaseViePriceQueryVO>> pageToBeCreate(UserLoginCacheDTO user, PurchaseViePricePageVO pageVO);

    /**
     * 批量新增采购竞价合同
     * @author 伍将
     * @date 2021/3/15
     * @param addVOList: 新增请求参数
     * @return 操作结果
     **/
    Wrapper<Void> addList(List<PurchaseViePriceAddVO> addVOList);

    /**
     * 检查采购竞价合同是否已创建合同
     * @author 伍将
     * @date 2021/3/15
     * @param user: 当前登录用户
     * @param viePriceId: 竞价单id
     * @param awardMemberId: 授标会员id
     * @param awardRoleId: 授标会员角色id
     * @return 操作结果
     **/
    PurchaseViePriceDO checkCreate(UserLoginCacheDTO user, Long viePriceId, Long awardMemberId, Long awardRoleId);

    /**
     * 更新采购竞价合同创建状态
     * @author 伍将
     * @date 2021/3/15
     * @param user: 当前登录用户
     * @param viePriceId: 竞价单id
     * @param awardMemberId: 授标会员id
     * @param awardRoleId: 授标会员角色id
     * @param: 创建合同：0-否，1-是
     * @return 操作结果
     **/
    Wrapper<Void> updateCreateStatus(UserLoginCacheDTO user, Long viePriceId, Long awardMemberId, Long awardRoleId, Integer isCreate);
}
